Skip to main content

파일 시스템

파일

파일시스템에 대해 알아보기 전에 파일에 대해 알아보려고 한다. 파일이란 프로그램 또는 데이터와 같은 정보들의 집합을 의미한다. 이러한 정보들은 운영체제에 의해 물리적 장치에 저장이된다. 사용자의 입장에서 파일은 보조 저장 장치의 가장 작은 할당 단위를 의미하게 된다.

파일시스템

파일시스템은 파일의 저장, 액세스 등의 기능을 수행하는 파일 관리 기술이다. 파일시스템의 기능은 다음과 같다.

  1. 사용자와 보조기억장치 사이에서 인터페이스를 제공한다.
  2. 사용자가 파일을 생성, 수정, 제거할 수 있다.
  3. 여러 사용자가 파일을 공유하여 사용할 수 있다.
  4. 백업과 복구가 가능하다.
  5. 주기억장치와 보조기억장치 간의 파일 전송을 담당한다.
  6. 사용자가 적합한 구조로 파일을 구성할 수 있다.

접근 방법

  • 순차접근
    • 파일의 정보가 레코드 순서대로 처리된다.
    • 테이프 모델에 기반을 둔다.
    
  • 직접접근
    • 직접 접근을 위해서 파일은 고정 길이의 논리 레코드들로 구성되고 특별한 순서없이 빠르게 레코드를 읽고 쓸수있다.
    • 디스크 모델에 기반을 두며 이는 디스크가 무작위 파일 블록에 임의적 접근을 허용하기 때문이다.
    • 직접 접근을 위해 파일은 번호을 갖는 일련의 블록 또는 레코드로 간주된다.
    • 대규모 정보를 즉각적으로 접근하는 곳에 유용하며, 대규모 데이터베이스가 이러한 유형이다.
  • 색인접근
    • 파일에서 레코드를 찾기 위해서 색인부터 찾고 그에 대응하는 포인터를 얻는다. 이후, 그 포인터를 활용하여 파일에 직접 접근하여 원하는 레코드를 찾는다.

디렉토리

파일 시스템 내부에 있으며, 디스크에 존재하는 파일에 대한 정보를 가지고 있는 테이블이다. 디렉토리의 종류는 다음과 같다.

  • 1단계 디렉토리
    • 모드 파일이 같은 디렉토리에서 관리되는 가장 간단한 구조
    • 모든 파일이 유일한 이름을 가져야한다.
    • 다수의 사용자가 사용하거나 파일의 수가 증가할 때 관리가 어려움.
  • 2단계 디렉토리
    • 중앙에 MFD(Master File Directory)가 있고, 그 아래에 각 사용자에게 할당하는 UFD(User File Directory) 가 있는 구조
    • 각 사용자에게 서로 다른 디렉토리를 할당
      • 다른 사용자와 같은 이름의 파일 소지 가능
      • 사용자 이름과 파일이름으로 특정 파일을 명시해야 해서 파일 이름이 길다.
      • 각 사용자명 디렉토리가 독립적이므로 파일을 공유할 수 없다.
  • 트리 구조 디렉토리
    • 하나의 루트 디렉토리와 다수의 서브 디렉토리로 구성
    • 서로 다른 디렉토리 내에서는 동일한 이름의 파일이나 디렉토리 생성가능
    • 파일 및 디렉토리 탐색은 절대 경로, 상대 경로를 이용
      • 절대 경로: 루트 디렉토리를 기준으로 해당 파일이나 종속 디렉토리에 이르는 경로
      • 상대 경로: 현재 디렉토리를 기준으로 해당 파일이나 디렉토리까지의 경로
    • 디렉토리 생성 및 삭제가 용이
    • 다른 사용자의 파일에도 접근할 수 있다.
    • 한 비트를 활용하여 파일이 일반 파일(0) 인지 디렉토리 파일(1)인지 구분한다.
    • Windows, Unix 운영체제에서 사용하는 구조
  • 비순환 그래프 디렉토리

    • 하위 파일이나 디렉토리의 공유를 허용하나 사이클이 없는 그래프 구조

    • 하나의 파일이나 디렉토리가 여러 개의 경로 이름을 가질 수 있다.

    • 단순 트리 구조보다 융통성이 좋으나 복잡

    • 공유된 하나의 파일을 탐색하는 경우 다른 경로로 두번 이상 찾아갈 수 있어서 시스템 성능 저하

    • 공유된 파일을 삭제할 경우, 파일은 삭제되었지만 파일을 가리키는 포인터는 남아있는 Dangling Pointer가 발생할 수 있음.

파일 시스템 마운팅

  • 파일에 접근하려면, 파일시스템이 프로세스들에 의해 미리 장착(mount)되어야 한다.
  • 사용하고 싶은 파일을 소유한 파일 시스템을 특정한 directory에 mount하면 그때부터 파일을 사용 가능하다. 이 때 특정한 directory를 mount point라고 한다.

면접에 나올 수 있는 질문

  • 대규모 데이터베이스에서 적용할 수 있는 파일시스템 접근방법
  • 절대경로와 상대경로의 차이

참고

기여자


Junho Moon

📦